package com.ailanyin.modules.flowable.mapper;

import java.util.List;
import java.util.Map;

/**
 * @author ailanyin
 * @version 1.0
 * @since 2022/12/12 0012 上午 10:52
 */
public interface UserAndRoleMapper {

    /**
     * 通过userId查询用户信息
     *
     * @param userId userId
     * @return result
     */
    Map selectUserById(Long userId);

    /**
     * 通过deptId查询部门信息
     *
     * @param deptId deptId
     * @return result
     */
    Map selectDeptById(Long deptId);

    /**
     * 通过roleId查询角色信息
     *
     * @param roleId roleId
     * @return result
     */
    Map selectRoleById(Long roleId);

    /**
     * 查询所有角色
     *
     * @return id name
     */
    List<Map> selectRoleAll();

    /**
     * 查询所有用户
     *
     * @return id
     */
    List<Map> selectUserList();

    /**
     * 查询角色所有的用户ids
     *
     * @param roleId 角色id
     * @return userIds
     */
    List<Long> selectUserIdsByRoleId(Long roleId);

    /**
     * 查询部门所有的用户ids
     *
     * @param deptId 部门id
     * @return userIds
     */
    List<Long> selectUserIdsByDeptId(Long deptId);

    /**
     * 查询用户的部门领导Id
     *
     * @param userId userId
     * @return dept leader userId
     */
    Long selectDeptLeaderIdByUserId(Long userId);
}
